//!HOOK LUMA
//!WHEN OUTPUT.w LUMA.w / 1.400 > OUTPUT.h LUMA.h / 1.400 > *
//!DESC feature map 1
//!BIND LUMA
//!SAVE FEATURE1
//!COMPONENTS 4
vec4 hook()
{
vec4 res = vec4(-0.0853798240423203,-0.1672090142965317,-0.0297596938908100,0.1701694130897522);
res += vec4(-0.0356376133859158,-0.1114819794893265,-0.0291964188218117,0.0531986355781555) * float(LUMA_texOff(vec2(-2,-2)));
res += vec4(-0.0188015662133694,0.0289419665932655,0.0585565567016602,-0.1429664939641953) * float(LUMA_texOff(vec2(-2,-1)));
res += vec4(-0.0548676401376724,-0.1238671243190765,0.0881077945232391,-0.1609255522489548) * float(LUMA_texOff(vec2(-2,0)));
res += vec4(-0.1467316448688507,0.1654912978410721,-0.0538617447018623,0.1009359285235405) * float(LUMA_texOff(vec2(-2,1)));
res += vec4(-0.1579643040895462,-0.0711570978164673,-0.0229181647300720,-0.1222592443227768) * float(LUMA_texOff(vec2(-2,2)));
res += vec4(-0.0298172812908888,-0.1413983851671219,0.0168289337307215,0.1283496469259262) * float(LUMA_texOff(vec2(-1,-2)));
res += vec4(-0.0303659364581108,-0.1057346463203430,-0.0667133033275604,-0.2719158828258514) * float(LUMA_texOff(vec2(-1,-1)));
res += vec4(0.1989319473505020,0.0650888457894325,-0.3382335901260376,0.0327439419925213) * float(LUMA_texOff(vec2(-1,0)));
res += vec4(0.1406306028366089,-0.0862409174442291,0.0743472129106522,0.1425614506006241) * float(LUMA_texOff(vec2(-1,1)));
res += vec4(0.1498052775859833,0.1450904458761215,0.0450949296355247,-0.0765150859951973) * float(LUMA_texOff(vec2(-1,2)));
res += vec4(0.3932695090770721,-0.2694476544857025,0.1355344355106354,0.1215626820921898) * float(LUMA_texOff(vec2(0,-2)));
res += vec4(0.2063025236129761,0.2709469795227051,-0.6130894422531128,-0.3119314312934875) * float(LUMA_texOff(vec2(0,-1)));
res += vec4(0.3027862310409546,0.2860252857208252,0.2678794562816620,-0.2625709176063538) * float(LUMA_texOff(vec2(0,0)));
res += vec4(-0.2269673049449921,-0.0625157058238983,0.5819952487945557,0.0947079136967659) * float(LUMA_texOff(vec2(0,1)));
res += vec4(-0.0696534663438797,0.1665032505989075,-0.1744899600744247,0.2698301076889038) * float(LUMA_texOff(vec2(0,2)));
res += vec4(-0.1005292907357216,0.3037336170673370,0.0382580235600471,-0.0555206201970577) * float(LUMA_texOff(vec2(1,-2)));
res += vec4(0.1969453245401382,-0.1266881674528122,0.0416522845625877,0.1261496990919113) * float(LUMA_texOff(vec2(1,-1)));
res += vec4(-0.0927697122097015,0.5902215242385864,0.0973984375596046,-0.1739611923694611) * float(LUMA_texOff(vec2(1,0)));
res += vec4(-0.1466443389654160,0.0911074951291084,-0.0953818038105965,0.1584407985210419) * float(LUMA_texOff(vec2(1,1)));
res += vec4(-0.1786042749881744,-0.0537995770573616,-0.0530415996909142,-0.1224418804049492) * float(LUMA_texOff(vec2(1,2)));
res += vec4(-0.1378700137138367,-0.1014880985021591,-0.0475821048021317,-0.0871055349707603) * float(LUMA_texOff(vec2(2,-2)));
res += vec4(0.0689598321914673,0.0149416914209723,-0.0001387567754136,0.0066432403400540) * float(LUMA_texOff(vec2(2,-1)));
res += vec4(0.1406699120998383,-0.1193188950419426,-0.0195928309112787,0.2412559539079666) * float(LUMA_texOff(vec2(2,0)));
res += vec4(-0.3369188904762268,-0.2803646624088287,0.0176154337823391,-0.2272255718708038) * float(LUMA_texOff(vec2(2,1)));
res += vec4(0.1090205386281013,0.0371246896684170,0.0608776994049549,-0.0068596606142819) * float(LUMA_texOff(vec2(2,2)));
return res;
}

//!HOOK LUMA
//!WHEN OUTPUT.w LUMA.w / 1.400 > OUTPUT.h LUMA.h / 1.400 > *
//!DESC feature map 2
//!BIND LUMA
//!SAVE FEATURE2
//!COMPONENTS 4
vec4 hook()
{
vec4 res = vec4(-0.0076060029678047,-0.1615636646747589,-0.0044600968249142,-0.2676333487033844);
res += vec4(-0.0244165230542421,-0.0464335717260838,0.0119879199191928,0.1365669518709183) * float(LUMA_texOff(vec2(-2,-2)));
res += vec4(0.0404744558036327,0.0277119465172291,0.0128722246736288,-0.1004667878150940) * float(LUMA_texOff(vec2(-2,-1)));
res += vec4(0.1671107411384583,-0.0149785038083792,0.1501502543687820,0.0073085227049887) * float(LUMA_texOff(vec2(-2,0)));
res += vec4(0.0449131168425083,0.0936449766159058,-0.1010979637503624,-0.0902480483055115) * float(LUMA_texOff(vec2(-2,1)));
res += vec4(0.0178960524499416,-0.0103396074846387,0.0443054288625717,0.0763952583074570) * float(LUMA_texOff(vec2(-2,2)));
res += vec4(-0.0630467981100082,-0.0694904327392578,0.0893742814660072,0.1801602691411972) * float(LUMA_texOff(vec2(-1,-2)));
res += vec4(-0.0646953508257866,-0.0484127663075924,0.0687132626771927,0.0146966585889459) * float(LUMA_texOff(vec2(-1,-1)));
res += vec4(-0.7358589172363281,0.4393136203289032,-0.6129102706909180,-0.0904974862933159) * float(LUMA_texOff(vec2(-1,0)));
res += vec4(-0.0995980724692345,-0.2898942828178406,0.1723877340555191,0.2449672222137451) * float(LUMA_texOff(vec2(-1,1)));
res += vec4(-0.0392763167619705,0.1444439291954041,-0.0604150071740150,-0.2830453515052795) * float(LUMA_texOff(vec2(-1,2)));
res += vec4(0.0500941760838032,-0.0275453571230173,0.0193116627633572,0.0838388577103615) * float(LUMA_texOff(vec2(0,-2)));
res += vec4(-0.0487468466162682,-0.1954061985015869,-0.1353704333305359,-0.1285058110952377) * float(LUMA_texOff(vec2(0,-1)));
res += vec4(0.9277756214141846,1.2747170925140381,0.5961799025535583,0.8633500337600708) * float(LUMA_texOff(vec2(0,0)));
res += vec4(-0.0127829592674971,0.0210105907171965,-0.6300318241119385,0.2606234848499298) * float(LUMA_texOff(vec2(0,1)));
res += vec4(-0.0029056041967124,-0.0687973499298096,0.0398402325809002,0.1276661008596420) * float(LUMA_texOff(vec2(0,2)));
res += vec4(0.0363122485578060,0.1286414116621017,-0.0535551272332668,-0.2585787773132324) * float(LUMA_texOff(vec2(1,-2)));
res += vec4(-0.1205130517482758,-0.0471730642020702,0.1073863208293915,0.0777695402503014) * float(LUMA_texOff(vec2(1,-1)));
res += vec4(0.0638762786984444,-0.4689098000526428,0.2257320135831833,-0.0742534995079041) * float(LUMA_texOff(vec2(1,0)));
res += vec4(-0.1724529564380646,-0.2252608090639114,-0.0088121062144637,0.2841453850269318) * float(LUMA_texOff(vec2(1,1)));
res += vec4(0.0687316879630089,0.0422166213393211,0.0227348748594522,0.0041509852744639) * float(LUMA_texOff(vec2(1,2)));
res += vec4(-0.0141485817730427,-0.0534811355173588,0.0401722416281700,0.1268849521875381) * float(LUMA_texOff(vec2(2,-2)));
res += vec4(0.0299849882721901,0.0287854224443436,-0.0484253130853176,-0.0579955540597439) * float(LUMA_texOff(vec2(2,-1)));
res += vec4(-0.0825610533356667,0.0300235617905855,0.0170095954090357,0.1053028032183647) * float(LUMA_texOff(vec2(2,0)));
res += vec4(0.0236742552369833,0.0075508155860007,0.1092517897486687,0.1648972481489182) * float(LUMA_texOff(vec2(2,1)));
res += vec4(-0.0153314098715782,0.0235035717487335,-0.0199039727449417,-0.0815296545624733) * float(LUMA_texOff(vec2(2,2)));
return res;
}

//!HOOK LUMA
//!WHEN OUTPUT.w LUMA.w / 1.400 > OUTPUT.h LUMA.h / 1.400 > *
//!DESC mapping 1_1
//!BIND FEATURE1
//!BIND FEATURE2
//!SAVE MODEL21
//!COMPONENTS 4
vec4 hook()
{
vec4 res = vec4(0.0579616799950600,0.0353426486253738,-0.8787863254547119,-0.0886278077960014);
res += mat4(-0.0882400572299957,-0.0116489799693227,0.0784582346677780,0.1025894209742546,0.1891667246818542,0.1311660706996918,-0.2901759147644043,0.0602769330143929,-0.1037664413452148,-0.0605170205235481,-0.0111857624724507,-0.0367577224969864,0.0264019258320332,-0.0356012135744095,-0.0309065207839012,0.1366989165544510) * FEATURE1_texOff(vec2(-1,-1));
res += mat4(-0.3201251327991486,-0.3157511949539185,-0.4267357289791107,-0.0759374499320984,-0.0149258356541395,-0.0260415133088827,0.0474626980721951,0.0309264454990625,0.1876198947429657,0.0620617642998695,-0.2487933486700058,0.1243389993906021,0.0360662639141083,-0.0063855028711259,-0.1029205024242401,-0.0385345742106438) * FEATURE2_texOff(vec2(-1,-1));
res += mat4(-0.0764416903257370,0.1215734779834747,0.0539120249450207,-0.0805041640996933,0.3502657711505890,-0.0615648292005062,0.3225207030773163,-0.0590302869677544,-0.2506490945816040,-0.1174911186099052,0.2671029567718506,0.2854034900665283,0.0843513384461403,0.0357232540845871,0.1157457828521729,0.0203190166503191) * FEATURE1_texOff(vec2(-1,0));
res += mat4(-0.4740080237388611,-0.4076714217662811,0.8326182365417480,0.1948772221803665,-0.2916968166828156,-0.0211706459522247,0.0259324628859758,0.3836650550365448,0.0799574851989746,-0.1989953070878983,-0.2697710692882538,0.0996866673231125,0.0735243409872055,0.0530892573297024,0.1964618563652039,-0.0520784892141819) * FEATURE2_texOff(vec2(-1,0));
res += mat4(-0.3146829307079315,-0.0610976442694664,0.0424374304711819,-0.0767948180437088,0.0717994347214699,0.0881048068404198,-0.1655190438032150,-0.0107997711747885,-0.1956988722085953,0.0711909160017967,0.0827519074082375,0.0227961428463459,-0.0655280947685242,0.0365250371396542,-0.0021088880021125,0.0013687203172594) * FEATURE1_texOff(vec2(-1,1));
res += mat4(0.0397523976862431,0.1657273024320602,0.4697533845901489,-0.1319139748811722,-0.1514904201030731,-0.0563734322786331,0.0053454875014722,-0.1172813773155212,0.0389390736818314,0.0312011577188969,0.6026618480682373,-0.0731704682111740,-0.0893475562334061,-0.0359318926930428,-0.0363706685602665,0.0013551594456658) * FEATURE2_texOff(vec2(-1,1));
res += mat4(-0.1171885132789612,0.1833393275737762,-0.0148444566875696,-0.0799420773983002,0.3244126141071320,-0.3530021607875824,-0.1667520552873611,-0.2648316323757172,0.3002060949802399,0.4464914202690125,0.6070919632911682,-0.0161593277007341,0.3055749237537384,0.0630228370428085,-0.1479081660509109,-0.2190946340560913) * FEATURE1_texOff(vec2(0,-1));
res += mat4(-0.0925606638193130,0.1667375564575195,-0.3750897347927094,0.0078806234523654,0.1867287904024124,0.3291720747947693,0.0512632429599762,0.1907127946615219,0.7933757901191711,-0.3655285835266113,-0.3990741372108459,-0.4216411709785461,-0.0845588073134422,-0.0302591025829315,0.0311040505766869,-0.0964028835296631) * FEATURE2_texOff(vec2(0,-1));
res += mat4(-0.4108467102050781,0.1557285189628601,0.1180170029401779,-0.0711420848965645,-0.0689522773027420,0.0220924671739340,0.1038367226719856,-0.6211695075035095,0.8640101552009583,-0.9567085504531860,0.9870355725288391,0.8091265559196472,-0.1052534207701683,0.1310229450464249,-0.1771575957536697,0.6319755315780640) * FEATURE1_texOff(vec2(0,0));
res += mat4(-1.2547540664672852,0.5107409358024597,0.0952374488115311,0.2676746547222137,-0.7426073551177979,0.6236451268196106,0.7101115584373474,1.3350743055343628,-1.1870708465576172,-0.3367035388946533,-0.9960529804229736,-0.1968704164028168,0.0437127165496349,0.1662254333496094,0.5705608725547791,-0.1016824916005135) * FEATURE2_texOff(vec2(0,0));
res += mat4(0.0036304807290435,-0.1636953353881836,0.1699058264493942,0.0026841964572668,0.2924342453479767,-0.1507407277822495,0.2798574268817902,-0.1503582596778870,-0.6379399299621582,-0.2626689672470093,-0.3791542351245880,-0.3214032649993896,0.4213007390499115,0.0906633809208870,-0.3311685919761658,-0.1851305663585663) * FEATURE1_texOff(vec2(0,1));
res += mat4(-0.5776841044425964,0.1849923878908157,-0.1755785197019577,0.3923526406288147,0.3142654597759247,0.0400535091757774,0.5088542699813843,-0.1170121952891350,0.4978917539119720,-0.2719714641571045,0.0635821074247360,-0.8868460059165955,0.1115238592028618,0.0153860580176115,-0.2336294651031494,0.0524744503200054) * FEATURE2_texOff(vec2(0,1));
res += mat4(0.0282120723277330,0.0127970818430185,0.0360940508544445,0.0611451193690300,-0.1201909705996513,-0.1207201480865479,0.0419738292694092,0.0842100977897644,0.0206016525626183,-0.1170866414904594,0.0071858377195895,-0.3671327829360962,-0.0586784034967422,0.0788541734218597,-0.1267124414443970,0.2069029510021210) * FEATURE1_texOff(vec2(1,-1));
res += mat4(-0.3674739599227905,-0.1641774028539658,-0.2774963974952698,0.4381142854690552,-0.0382847599685192,-0.1071301400661469,0.1528190672397614,0.1824621260166168,0.2733397781848907,-0.4192540347576141,-0.1221719607710838,-0.2507391870021820,-0.0634396150708199,0.0172579716891050,0.0116440467536449,0.0660773590207100) * FEATURE2_texOff(vec2(1,-1));
res += mat4(0.0036424808204174,-0.1696032136678696,-0.1131525486707687,-0.1870439499616623,-0.0558765120804310,-0.2135696113109589,0.1295202523469925,0.1384549140930176,-0.3443964421749115,-0.3039626181125641,0.1747909486293793,0.1611361056566238,-0.3043809235095978,-0.1467531472444534,-0.0031470961403102,0.1239778846502304) * FEATURE1_texOff(vec2(1,0));
res += mat4(0.4418568015098572,-0.7013767361640930,-0.2563757300376892,-0.0794900134205818,-0.0837559849023819,-0.0015205206582323,-0.1394464969635010,0.0366120561957359,-0.6278013586997986,-0.1505526155233383,0.3864458203315735,0.2402219176292419,0.2481860965490341,-0.1644812673330307,-0.0355790108442307,-0.1212296113371849) * FEATURE2_texOff(vec2(1,0));
res += mat4(-0.1975306421518326,0.1138981506228447,-0.1449686884880066,0.0687115266919136,-0.0476987399160862,0.0377878062427044,0.2141537815332413,0.0638240575790405,-0.0842683613300323,0.2164926528930664,0.5330541133880615,-0.0349883101880550,-0.2529039978981018,-0.0584470331668854,0.1125688329339027,-0.1491064429283142) * FEATURE1_texOff(vec2(1,1));
res += mat4(-0.1550740748643875,0.2061123251914978,-0.2009485512971878,0.3866823017597198,-0.1253440231084824,0.0600345470011234,-0.0838778018951416,0.0480436086654663,0.1000890284776688,0.4163405001163483,-0.2055807113647461,-0.0101267164573073,-0.1398234069347382,0.0248905681073666,-0.1029637679457664,0.0000027739151847) * FEATURE2_texOff(vec2(1,1));
res = max(res, vec4(0.0)) + vec4(0.6701077818870544,-0.2966655492782593,0.1034048870205879,1.4984067678451538) * min(res, vec4(0.0));
return res;
}

//!HOOK LUMA
//!WHEN OUTPUT.w LUMA.w / 1.400 > OUTPUT.h LUMA.h / 1.400 > *
//!DESC mapping 1_2
//!BIND FEATURE1
//!BIND FEATURE2
//!SAVE MODEL22
//!COMPONENTS 4
vec4 hook()
{
vec4 res = vec4(0.2038344889879227,0.0373723842203617,0.0775399580597878,-0.1766027659177780);
res += mat4(-0.2651079595088959,0.1523300111293793,0.0651755630970001,0.0300291664898396,0.1699865311384201,0.0780254155397415,0.0101488120853901,-0.1425206512212753,-0.4405938982963562,0.0283882040530443,-0.0053346958011389,0.3972108662128448,0.1805529594421387,-0.1231113150715828,-0.1390501409769058,-0.0927951410412788) * FEATURE1_texOff(vec2(-1,-1));
res += mat4(-0.2550076246261597,-0.0622618496417999,-0.3241949081420898,0.3150252699851990,-0.1733385473489761,-0.1504356414079666,-0.0743079110980034,0.3044051229953766,0.0649666860699654,0.0996594876050949,0.1606312990188599,0.0485946610569954,-0.0775577425956726,0.0676259398460388,-0.0668976157903671,0.0495216138660908) * FEATURE2_texOff(vec2(-1,-1));
res += mat4(0.1709264069795609,-0.1106552481651306,-0.0197501163929701,0.0531847290694714,-0.0288089383393526,0.3680387735366821,0.0715327262878418,-0.7489775419235229,0.4458067119121552,-0.2821282148361206,-0.0422722361981869,0.0056444820947945,-0.0725581645965576,0.0269926730543375,0.2679491043090820,-0.0743444561958313) * FEATURE1_texOff(vec2(-1,0));
res += mat4(0.1455161124467850,-0.1373506188392639,0.3676213622093201,-0.0060271592810750,0.0852602496743202,-0.8262196183204651,0.3104476332664490,0.3328136801719666,0.5481265187263489,0.0770711079239845,0.4541175961494446,-0.6566696763038635,0.1114134192466736,-0.0143298525363207,-0.0734474584460258,-0.3902816474437714) * FEATURE2_texOff(vec2(-1,0));
res += mat4(0.0134972119703889,-0.0334010273218155,-0.0373437218368053,0.0358870737254620,0.0376430191099644,0.1491198986768723,0.0309988092631102,0.2294714450836182,0.2232933938503265,0.0228191148489714,-0.1587016433477402,-0.0228525158017874,-0.0121370656415820,0.0587197281420231,-0.0494163818657398,-0.2147567123174667) * FEATURE1_texOff(vec2(-1,1));
res += mat4(-0.3930912315845490,0.1964860856533051,-0.3169916570186615,-0.0548439919948578,-0.1009649261832237,-0.0964268520474434,0.0268160030245781,0.2421054989099503,0.1245618015527725,0.0934751927852631,0.0283082351088524,-0.0811625421047211,-0.0310765355825424,0.1927054822444916,-0.0117396954447031,-0.0665882453322411) * FEATURE2_texOff(vec2(-1,1));
res += mat4(0.1197380349040031,-0.0674595087766647,0.0445958450436592,0.2007677704095840,0.0078666815534234,0.1089783236384392,-0.1802385300397873,-0.2447413653135300,-0.2526700794696808,0.0601304918527603,0.1112870946526527,-0.3890923559665680,0.0848282575607300,0.0572970509529114,-0.0478770993649960,-0.3045470714569092) * FEATURE1_texOff(vec2(0,-1));
res += mat4(-0.5449912548065186,0.1921674460172653,0.2279650121927261,0.2458889931440353,0.2499456554651260,-0.0024159101303667,-0.0060066655278206,0.3267035484313965,0.3068874776363373,0.1528840363025665,-0.8897195458412170,1.3247236013412476,0.0627848654985428,0.0465680733323097,0.0826742798089981,-0.1192877665162086) * FEATURE2_texOff(vec2(0,-1));
res += mat4(-0.1293582916259766,0.0228206012398005,0.5517800450325012,-0.0986562594771385,0.0132327545434237,0.4033943712711334,0.0552195794880390,-0.1044268235564232,-0.5059322118759155,0.4240015149116516,-0.6368457078933716,-0.3211603462696075,-0.8619193434715271,0.2712217569351196,-0.1855221688747406,-0.2459184229373932) * FEATURE1_texOff(vec2(0,0));
res += mat4(-1.5339660644531250,1.6535094976425171,0.5460554957389832,-1.2896739244461060,-0.3237005174160004,-0.2153576016426086,0.4855650365352631,-1.6042171716690063,-1.4121572971343994,1.0922223329544067,2.0139977931976318,-1.4420905113220215,-0.2773273885250092,0.1668123602867126,-0.1721785813570023,-0.6265566945075989) * FEATURE2_texOff(vec2(0,0));
res += mat4(-0.1008378714323044,-0.0696354806423187,0.4167472720146179,-0.2218373268842697,-0.0139161599799991,0.0634993836283684,-0.2138854712247849,-0.1084877774119377,0.1241626143455505,-0.0326500684022903,-0.6334627866744995,0.7072567939758301,0.0832477584481239,-0.1744286566972733,-0.4907409250736237,0.3277339637279510) * FEATURE1_texOff(vec2(0,1));
res += mat4(-0.2437872439622879,0.0212447904050350,-0.2659043371677399,-0.2284276634454727,0.1025075614452362,-0.1728982180356979,-0.4734827280044556,0.1419274359941483,0.0061396416276693,0.3452163636684418,-0.6695492267608643,0.0946187078952789,0.0255327839404345,-0.0926367118954659,-0.1459557116031647,-0.1447087675333023) * FEATURE2_texOff(vec2(0,1));
res += mat4(-0.0845761969685555,-0.0230105612426996,-0.1065193191170692,0.1519329845905304,-0.0238207504153252,-0.0171637479215860,0.0948788672685623,-0.3285467028617859,0.1402188092470169,-0.0278346128761768,-0.2795631885528564,0.2040812969207764,-0.1209280714392662,0.0096324337646365,0.1991984546184540,0.0822984501719475) * FEATURE1_texOff(vec2(1,-1));
res += mat4(-0.3563552796840668,-0.1275004595518112,0.4117596745491028,0.0255091115832329,0.0239097662270069,-0.1402917057275772,-0.0134015595540404,0.5867897272109985,0.1022763326764107,0.0176535155624151,0.0612108409404755,-0.1243272945284843,-0.0423560589551926,-0.0474668294191360,0.0648937746882439,0.0855379030108452) * FEATURE2_texOff(vec2(1,-1));
res += mat4(0.0570301599800587,0.0619098059833050,0.0406886339187622,0.1191232278943062,-0.3472662270069122,0.2509653866291046,-0.1499539762735367,0.1505263298749924,0.0233824644237757,-0.0258490275591612,0.4131064116954803,0.1732399463653564,0.1149894297122955,-0.1061025708913803,-0.1265509575605392,-0.1562920361757278) * FEATURE1_texOff(vec2(1,0));
res += mat4(0.2079130858182907,-0.4456795156002045,-0.2321979552507401,0.6912553310394287,0.1238622069358826,-0.0951864868402481,0.1097534224390984,-0.4592184722423553,-0.2971507608890533,-0.2613298594951630,0.3064945936203003,0.8968593478202820,0.0239472631365061,0.0922895297408104,-0.3424027264118195,-0.1012208908796310) * FEATURE2_texOff(vec2(1,0));
res += mat4(0.1701507568359375,0.0739953666925430,0.0797298625111580,-0.1573543995618820,-0.0881135016679764,-0.1921070516109467,0.1650006473064423,0.0493097268044949,0.0103575373068452,0.0626698732376099,0.0555353388190269,-0.0703030303120613,-0.1324565112590790,0.1746891736984253,0.1349236816167831,0.0517671443521976) * FEATURE1_texOff(vec2(1,1));
res += mat4(-0.1817525774240494,-0.1050116792321205,0.1876988857984543,0.2070325165987015,-0.3086797297000885,-0.0645328909158707,0.0018717584898695,0.1102566719055176,-0.3103627562522888,0.1139950230717659,-0.0598976612091064,-0.2148687839508057,0.0932476967573166,-0.0056264889426529,0.2741792798042297,-0.0550347268581390) * FEATURE2_texOff(vec2(1,1));
res = max(res, vec4(0.0)) + vec4(0.8184855580329895,-0.7940016984939575,-0.7985299825668335,0.0234029088169336) * min(res, vec4(0.0));
return res;
}

//!HOOK LUMA
//!WHEN OUTPUT.w LUMA.w / 1.400 > OUTPUT.h LUMA.h / 1.400 > *
//!DESC mapping 2_1
//!BIND MODEL21
//!BIND MODEL22
//!SAVE MODEL1
//!COMPONENTS 4
vec4 hook()
{
vec4 res = vec4(0.0107307843863964,0.0503937825560570,-0.0121495844796300,0.3504320383071899);
res += mat4(-0.1170227751135826,-0.2926559746265411,-0.2794974744319916,0.1999607980251312,-0.0044816010631621,0.0282160602509975,-0.0241910088807344,-0.0766206905245781,0.0150215951725841,0.0514926053583622,-0.0113780824467540,0.0669796988368034,-0.0922183692455292,-0.0977418944239616,0.1821908056735992,-0.2400150746107101) * MODEL21_texOff(vec2(-1,-1));
res += mat4(-0.0854889526963234,0.0196270067244768,-0.1533190310001373,-0.0721838250756264,0.1965129226446152,0.1088899970054626,0.0935271158814430,0.0085330447182059,0.0150350257754326,0.0215883422642946,0.1691533178091049,-0.1594884693622589,0.0056494171731174,-0.0330404788255692,-0.0783883184194565,-0.1947081238031387) * MODEL22_texOff(vec2(-1,-1));
res += mat4(-0.1298668235540390,-0.0320284143090248,0.0496332794427872,-0.0907471999526024,0.2419207692146301,-0.0618009008467197,0.0992639139294624,-0.0661561340093613,0.0118702845647931,-0.0574193783104420,0.0008199731819332,-0.3166360855102539,-0.2526652514934540,-0.0431810915470123,-0.0385909192264080,-0.1231929734349251) * MODEL21_texOff(vec2(-1,0));
res += mat4(-0.2870161533355713,0.0021378255914897,0.0972531735897064,-0.3256451189517975,0.0250687263906002,-0.0367284528911114,0.0225536413490772,-0.1336998343467712,-0.2124745994806290,0.0004518714267761,-0.0212620534002781,-0.3473975360393524,0.1877218484878540,-0.2382923215627670,-0.1691389381885529,-0.2607939243316650) * MODEL22_texOff(vec2(-1,0));
res += mat4(-0.3494985997676849,0.0657111555337906,0.0365327373147011,-0.0235686525702477,0.0971893966197968,-0.1885812878608704,-0.1269404441118240,-0.1172971650958061,-0.1033150255680084,0.0175577327609062,0.1097596362233162,-0.0895601212978363,-0.1200711652636528,-0.1421395093202591,-0.0382671914994717,-0.3073685169219971) * MODEL21_texOff(vec2(-1,1));
res += mat4(-0.1132298707962036,0.0805676877498627,-0.0281533021479845,0.0207207631319761,-0.0054668430238962,0.0276802945882082,0.0819877162575722,0.0866383388638496,-0.2965615391731262,-0.0124466121196747,0.1220286637544632,0.0078206732869148,0.6867934465408325,-0.0570235028862953,0.0124905975535512,-0.0320806764066219) * MODEL22_texOff(vec2(-1,1));
res += mat4(-0.1670406609773636,0.2859750688076019,-0.2413034290075302,0.2847112417221069,-0.2021002769470215,-0.1599734425544739,0.3502667844295502,0.0153927691280842,0.1159754768013954,-0.0475314557552338,-0.2651146650314331,0.1485961228609085,-0.2058195620775223,0.3378721177577972,-0.0942304059863091,-0.2364478409290314) * MODEL21_texOff(vec2(0,-1));
res += mat4(0.0048616756685078,0.0802371799945831,0.0619591921567917,0.0815801396965981,0.0745809525251389,-0.1387941539287567,-0.1419805288314819,-0.3282095789909363,0.1332644671201706,-0.1031304597854614,-1.0529615879058838,-0.4193095862865448,-0.0800228565931320,-0.0761661604046822,0.3809656798839569,0.0990595370531082) * MODEL22_texOff(vec2(0,-1));
res += mat4(0.7217072248458862,-0.0726934298872948,0.3388344049453735,-0.7059007883071899,-0.0043214880861342,0.2963758111000061,-0.3607184886932373,0.0793192833662033,0.1488304138183594,-0.0985802337527275,-0.1216776743531227,0.7880970239639282,0.5902503728866577,0.8173810839653015,0.4389740526676178,0.3895003497600555) * MODEL21_texOff(vec2(0,0));
res += mat4(0.7728423476219177,-0.1058187708258629,0.6040847897529602,-0.0885574221611023,0.1318567842245102,0.2057889997959137,-0.1302116513252258,-0.9275965690612793,-0.2463722974061966,-0.0731006264686584,-0.1795889437198639,-0.5398946404457092,-0.0661808624863625,0.3711376786231995,0.8109942674636841,0.5609696507453918) * MODEL22_texOff(vec2(0,0));
res += mat4(-0.4544891119003296,-0.3230849802494049,-0.1523115783929825,0.2619344890117645,-0.0441143102943897,0.2807577252388000,-0.1973627954721451,0.2694934308528900,0.2365595847368240,-0.0571611411869526,0.0167534314095974,-0.2566814124584198,-0.0614149235188961,-0.2824966013431549,-0.0154991978779435,-0.1933081895112991) * MODEL21_texOff(vec2(0,1));
res += mat4(0.4779173433780670,-0.0790736451745033,-0.0640212520956993,-0.1007741689682007,-0.1360809653997421,0.1253409385681152,0.0157431066036224,-0.4028496444225311,-0.2892809510231018,0.0423834510147572,0.0487185604870319,-0.1170028373599052,-0.0220867395401001,-0.0266016945242882,-0.2620400488376617,0.0835462957620621) * MODEL22_texOff(vec2(0,1));
res += mat4(0.0059753516688943,-0.0569679476320744,-0.3545355796813965,0.0576731264591217,-0.0110825914889574,-0.0211020167917013,0.0184582248330116,0.0031326103489846,0.0366443358361721,0.3114378750324249,-0.4092464745044708,0.0884459912776947,0.0138901043683290,-0.6033895611763000,-0.6393914222717285,-0.0129853608086705) * MODEL21_texOff(vec2(1,-1));
res += mat4(-0.1901503503322601,-0.0962844863533974,0.1147046312689781,-0.2132955938577652,0.0991097763180733,-0.1398245245218277,-0.5323681831359863,0.0402839630842209,0.1291607320308685,-0.0136453025043011,-0.3532781004905701,0.0469188168644905,-0.1472062766551971,0.0954465046525002,0.1624035686254501,-0.1391782164573669) * MODEL22_texOff(vec2(1,-1));
res += mat4(-0.1525869816541672,0.6071230769157410,0.3085938394069672,-0.1149888858199120,0.0609302110970020,-0.1495233625173569,0.3812556564807892,0.1142690256237984,-0.2592917382717133,0.1310688108205795,-0.2850962579250336,0.0591301582753658,-0.0748545601963997,0.4515462815761566,-0.3433283269405365,0.0919149592518806) * MODEL21_texOff(vec2(1,0));
res += mat4(-0.3763433694839478,0.4163261651992798,-0.5939743518829346,-0.1366641223430634,-0.0108249122276902,-0.4874393641948700,-1.0383255481719971,-0.0605900213122368,-0.0490414686501026,-0.1389858573675156,-0.0604164041578770,0.0458267331123352,-0.1099139973521233,0.1354717463254929,0.2723367214202881,-0.1934387683868408) * MODEL22_texOff(vec2(1,0));
res += mat4(-0.0749616324901581,-0.0693476572632790,0.4253875613212585,0.0778392553329468,0.1258466541767120,-0.0035783695057034,0.0908803269267082,0.2013690173625946,0.1682559400796890,-0.0834090337157249,0.0043013417162001,-0.1284326761960983,-0.1708782762289047,0.0416144505143166,0.2722817063331604,-0.0490457639098167) * MODEL21_texOff(vec2(1,1));
res += mat4(0.0973497256636620,-0.0934482663869858,-0.1734040379524231,-0.1646682173013687,0.0482751093804836,-0.1063523814082146,0.2359641045331955,-0.0533193908631802,-0.0859375745058060,0.0276659559458494,0.0425620339810848,0.1007255837321281,-0.0451437719166279,0.0553589649498463,-0.2070556581020355,0.0684229657053947) * MODEL22_texOff(vec2(1,1));
res = max(res, vec4(0.0)) + vec4(0.2857412993907928,-0.4447042346000671,-0.0543211884796619,0.2631053328514099) * min(res, vec4(0.0));
return res;
}

//!HOOK LUMA
//!WHEN OUTPUT.w LUMA.w / 1.400 > OUTPUT.h LUMA.h / 1.400 > *
//!DESC mapping 2_2
//!BIND MODEL21
//!BIND MODEL22
//!SAVE MODEL2
//!COMPONENTS 4
vec4 hook()
{
vec4 res = vec4(-0.1934586465358734,0.0724223181605339,0.1621536016464233,-0.1006531864404678);
res += mat4(-0.2018258273601532,-0.1528412401676178,-0.0387709252536297,0.1468785256147385,0.1060962155461311,-0.0044747944921255,-0.0178962722420692,-0.2047761082649231,-0.0447683893144131,0.1213490962982178,0.0350408516824245,0.1088740751147270,0.0454669371247292,-0.2128343731164932,-0.0068086781539023,-0.2059848010540009) * MODEL21_texOff(vec2(-1,-1));
res += mat4(0.0329445786774158,0.3420867919921875,-0.0323235169053078,0.0396264418959618,-0.0203992836177349,0.0409678891301155,0.0554109141230583,-0.0184089168906212,0.0659028440713882,0.0523513555526733,-0.0691149160265923,0.0140372328460217,-0.0026198262348771,-0.0723374336957932,-0.1022786572575569,-0.0402652099728584) * MODEL22_texOff(vec2(-1,-1));
res += mat4(0.0119048925116658,-0.0653605163097382,0.0760356783866882,0.0869221463799477,0.3086672127246857,-0.8569992780685425,0.0427381619811058,0.5005276799201965,-0.0936748683452606,-0.0643520578742027,-0.0928702279925346,0.1073639169335365,0.3529743850231171,-0.1968660950660706,0.0371512696146965,0.1253111809492111) * MODEL21_texOff(vec2(-1,0));
res += mat4(-0.2893930077552795,-0.2362698316574097,-0.1587589383125305,-0.2253407537937164,-0.0254740677773952,0.0708484351634979,0.0039659505710006,-0.0761618763208389,-0.0709562525153160,0.0667340978980064,-0.1293723732233047,0.0256163403391838,-0.0754861757159233,-0.3291185200214386,-0.0366525501012802,0.0430597402155399) * MODEL22_texOff(vec2(-1,0));
res += mat4(0.0718526020646095,0.0781395137310028,0.0037222758401185,0.0874524861574173,0.1046962961554527,0.2837322652339935,-0.3297269344329834,-0.1289068460464478,-0.0179447643458843,-0.0447887741029263,0.1343152672052383,-0.1519537866115570,-0.0911260694265366,0.1867193430662155,0.0556521229445934,0.1371448189020157) * MODEL21_texOff(vec2(-1,1));
res += mat4(0.0330765321850777,-0.2226030379533768,0.2344283312559128,-0.1552702933549881,-0.0625776723027229,-0.0059490785934031,0.0320856310427189,0.0612702295184135,-0.0117097645998001,-0.0976945981383324,0.0070710051804781,-0.0293613690882921,-0.0739905983209610,-0.0560690984129906,0.1724466681480408,0.1775547116994858) * MODEL22_texOff(vec2(-1,1));
res += mat4(-0.1844302117824554,0.1705982983112335,-0.1891564279794693,0.0179794766008854,-0.1564638763666153,-0.2420187592506409,-0.0500960238277912,-0.1099205538630486,-0.0006644324748777,-0.4162480533123016,-0.0883678495883942,-0.0798020660877228,-0.0947310775518417,0.0857453569769859,0.1575864851474762,0.1583028584718704) * MODEL21_texOff(vec2(0,-1));
res += mat4(0.1391702741384506,-0.3522459864616394,0.1746427863836288,-0.2388234436511993,-0.0697537660598755,0.0700916424393654,0.1241165101528168,-0.0956655293703079,-0.0955026522278786,0.3548622131347656,-0.4214293658733368,0.3441036641597748,0.1304623633623123,-0.1696302443742752,-0.3931669890880585,-0.1075326502323151) * MODEL22_texOff(vec2(0,-1));
res += mat4(0.7584063410758972,0.0772465169429779,0.0651727318763733,-0.9747868180274963,-0.0285702049732208,0.1671586185693741,-0.1777767539024353,0.2336765676736832,-0.0072258207947016,-0.0381465852260590,0.2973779141902924,-0.5436843633651733,-0.6620841026306152,0.5048310756683350,-0.3491813540458679,0.2342618405818939) * MODEL21_texOff(vec2(0,0));
res += mat4(1.0820122957229614,-0.3991130888462067,-0.4120714664459229,0.5408915877342224,-0.1636227667331696,0.5116859078407288,-0.1723641902208328,-0.2799920439720154,-0.0832094848155975,-0.1390830576419830,-1.3697794675827026,0.4488106369972229,0.0196906793862581,-0.5454838275909424,1.0622010231018066,-0.3513211011886597) * MODEL22_texOff(vec2(0,0));
res += mat4(-0.4667093455791473,0.0635114759206772,-0.2702704668045044,0.2230491489171982,-0.1655396521091461,0.2753160595893860,0.4616559445858002,-0.3253690898418427,-0.0354394204914570,0.0201709400862455,-0.1175039187073708,0.1334067434072495,0.0565603785216808,-0.2094215750694275,-0.0496245436370373,-0.3896657526493073) * MODEL21_texOff(vec2(0,1));
res += mat4(-0.1106158867478371,-0.0388997048139572,-0.0891894847154617,0.2019664347171783,-0.0887551605701447,-0.0158310420811176,0.2110573351383209,0.2528201341629028,-0.0242836289107800,-0.0527853183448315,0.0387686006724834,-0.3903322219848633,-0.1277453303337097,-0.0208761710673571,-0.5640393495559692,0.1759719103574753) * MODEL22_texOff(vec2(0,1));
res += mat4(0.0284943636506796,-0.0047033196315169,0.1853116899728775,-0.3116316497325897,0.0071182106621563,-0.1830806732177734,0.1211877316236496,-0.0220818743109703,-0.0196697097271681,0.0682088062167168,-0.2845907807350159,0.1116822734475136,0.0885120481252670,0.1580047309398651,0.0133088398724794,0.1270541697740555) * MODEL21_texOff(vec2(1,-1));
res += mat4(0.0960644483566284,-0.0436420664191246,-0.0728690102696419,-0.0137134660035372,0.1977186352014542,0.1295942813158035,0.1471848934888840,0.0405207276344299,-0.0052598724141717,-0.1523270905017853,-0.2296479642391205,0.1056206375360489,-0.0920153111219406,0.0832372531294823,-0.2409533709287643,0.0116248540580273) * MODEL22_texOff(vec2(1,-1));
res += mat4(-0.0749576315283775,-0.0512374825775623,0.3357976377010345,0.2263996303081512,0.0950472652912140,-0.1126114204525948,-0.0471377596259117,-0.0517951920628548,0.0150438118726015,0.3879611492156982,0.7154602408409119,-0.3196963071823120,-0.0055560451000929,-0.0559962205588818,-0.0910503640770912,-0.0490407682955265) * MODEL21_texOff(vec2(1,0));
res += mat4(-0.3637718856334686,0.3616937994956970,0.1216214075684547,0.1256470680236816,0.0869986489415169,-0.2561146914958954,-0.5287006497383118,0.2366871535778046,-0.1263453513383865,-0.1060820966959000,-0.7045249342918396,-0.0910261720418930,-0.0332518629729748,0.2773475944995880,-0.1068929955363274,-0.0793093815445900) * MODEL22_texOff(vec2(1,0));
res += mat4(-0.0649282112717628,-0.0427451953291893,-0.4145162701606750,0.3367698490619659,0.1112139746546745,-0.0441892892122269,0.2108698338270187,-0.0451529882848263,0.0354869961738586,-0.0804195553064346,-0.1303443014621735,0.2043106704950333,0.1116641014814377,-0.1651957482099533,0.0795865282416344,-0.0824172124266624) * MODEL21_texOff(vec2(1,1));
res += mat4(0.1053962409496307,0.1378966271877289,0.0397229827940464,-0.1561981141567230,0.0524948015809059,-0.2098362594842911,-0.2685427069664001,-0.1371507942676544,-0.0313083119690418,0.0090925870463252,-0.0756662935018539,-0.1791965812444687,-0.0527983084321022,0.0192846227437258,-0.0888356715440750,0.2054653763771057) * MODEL22_texOff(vec2(1,1));
res = max(res, vec4(0.0)) + vec4(0.9805670976638794,-0.3614247739315033,0.2657261788845062,-0.2786650359630585) * min(res, vec4(0.0));
return res;
}

//!HOOK LUMA
//!WHEN OUTPUT.w LUMA.w / 1.400 > OUTPUT.h LUMA.h / 1.400 > *
//!DESC mapping 3_1
//!BIND MODEL1
//!BIND MODEL2
//!SAVE MODEL21
//!COMPONENTS 4
vec4 hook()
{
vec4 res = vec4(-0.2240280061960220,0.0748027414083481,-0.0890314206480980,-0.2701009213924408);
res += mat4(-0.1046091839671135,-0.0146693009883165,0.0714426413178444,-0.1434442996978760,0.1293397098779678,-0.3571772575378418,-0.0630315318703651,0.0668382272124290,0.0525326952338219,-0.0215162392705679,-0.0635700300335884,-0.0230750199407339,0.1134359389543533,0.1236520335078239,0.0767875388264656,0.0106662660837173) * MODEL1_texOff(vec2(-1,-1));
res += mat4(0.0581832006573677,0.1250759065151215,-0.0297486335039139,0.1730475723743439,0.0077563957311213,0.2835890650749207,0.0248257480561733,0.0584501922130585,0.0614106729626656,0.0471400171518326,0.1114838868379593,-0.1431724727153778,-0.0329557396471500,0.2919245362281799,-0.2403003126382828,0.0913042947649956) * MODEL2_texOff(vec2(-1,-1));
res += mat4(0.0396036654710770,-0.0272567998617887,0.0192225053906441,-0.1344023644924164,0.3454683125019073,-0.4264765679836273,-0.1830834448337555,0.0265293717384338,-0.3053630888462067,0.1525462269783020,-0.2266447097063065,-0.0636812821030617,0.0892220735549927,0.1844903379678726,0.1577844321727753,0.2642294764518738) * MODEL1_texOff(vec2(-1,0));
res += mat4(-0.0329989381134510,-0.0372228845953941,0.2048383951187134,0.2513473033905029,0.0375348702073097,0.1636386364698410,0.3889409303665161,0.2843556702136993,0.1074976474046707,0.0782573893666267,0.0876377820968628,0.2651501893997192,-0.1461097449064255,0.0369707606732845,0.1769515872001648,0.0695765167474747) * MODEL2_texOff(vec2(-1,0));
res += mat4(-0.0117998467758298,-0.1151801422238350,0.0159981288015842,0.0067343665286899,0.1556068360805511,-0.1929838359355927,-0.1490823775529861,-0.1655417382717133,-0.4872918128967285,0.0261805634945631,-0.1086766794323921,-0.1959755420684814,0.0011568072950467,0.0872694030404091,-0.0625428780913353,0.0917102918028831) * MODEL1_texOff(vec2(-1,1));
res += mat4(0.1604034900665283,-0.0420328751206398,0.2339169681072235,0.1944300532341003,-0.0381462611258030,0.1131663471460342,0.0889344289898872,0.1400835663080215,0.0951599404215813,0.0495619997382164,-0.1240875571966171,0.0420421771705151,-0.0954977497458458,0.1092730462551117,0.0310690011829138,-0.0003392039216124) * MODEL2_texOff(vec2(-1,1));
res += mat4(0.0391689874231815,-0.1400861442089081,-0.0178734548389912,-0.1018130332231522,0.1716732084751129,-0.4382202327251434,-0.0775489881634712,0.2316083610057831,0.1428635865449905,0.1103600934147835,0.0873088091611862,-0.0277548469603062,-0.1483506560325623,0.0390562973916531,-0.2915041446685791,-0.0174695029854774) * MODEL1_texOff(vec2(0,-1));
res += mat4(0.2211988717317581,-0.0720646306872368,0.3824781477451324,0.1995444297790527,-0.0902681574225426,0.1642632335424423,0.1827114969491959,-0.0558678917586803,0.4282743930816650,0.1805654913187027,-0.0780247300863266,-0.6507355570793152,0.2099661827087402,0.0357341766357422,0.3376562595367432,0.0887164473533630) * MODEL2_texOff(vec2(0,-1));
res += mat4(0.4941097795963287,-0.1475334018468857,0.2867563962936401,-0.0083130234852433,0.2269925624132156,-0.6204891204833984,-0.1051758900284767,-0.0015001279534772,-0.4289424419403076,0.1490729749202728,0.2448180168867111,0.1776923239231110,-0.2830603718757629,0.1501049250364304,-0.8848162889480591,0.8499562144279480) * MODEL1_texOff(vec2(0,0));
res += mat4(-0.3671031892299652,0.5256505608558655,0.3541988134384155,-0.7101576328277588,-0.1267033815383911,0.2895969748497009,-0.2878412902355194,-0.0272730868309736,-0.5190501213073730,-0.0508829057216644,-0.0074553154408932,0.2037377059459686,0.1850960850715637,-0.1118510812520981,-0.1885597854852676,0.1294952630996704) * MODEL2_texOff(vec2(0,0));
res += mat4(-0.0729613080620766,-0.0400069169700146,-0.0488351359963417,-0.0886721238493919,0.3974276483058929,-0.3133765459060669,-0.0884803906083107,0.0463748164474964,-0.4875173568725586,-0.0250765103846788,0.1157694980502129,-0.1047549843788147,-0.2470083534717560,-0.0619403049349785,-0.1825542002916336,0.0009235009783879) * MODEL1_texOff(vec2(0,1));
res += mat4(-0.3596464991569519,0.0938118174672127,0.0521927997469902,0.1074185296893120,-0.2961389124393463,0.3280419707298279,0.2682076394557953,-0.3925868868827820,-0.1371797174215317,-0.0255202334374189,0.1868664622306824,0.0499300323426723,0.0537626147270203,0.1519732326269150,-0.0038378611207008,-0.1106520146131516) * MODEL2_texOff(vec2(0,1));
res += mat4(-0.0530605725944042,-0.0088912202045321,0.0189772080630064,-0.1889151781797409,-0.0062598916701972,-0.1603437066078186,-0.0369153022766113,0.1027500033378601,0.0065728272311389,-0.0990366861224174,0.0092343138530850,-0.0745620205998421,-0.1030429452657700,0.1070247218012810,0.1361347883939743,-0.2334174215793610) * MODEL1_texOff(vec2(1,-1));
res += mat4(0.0175717938691378,0.0151796052232385,-0.0839959681034088,0.1835061311721802,-0.1166460886597633,0.1400502324104309,0.0560900159180164,-0.1358120292425156,0.1835585087537766,-0.0240658372640610,0.1573372632265091,-0.2041238695383072,-0.0335267893970013,-0.0063750450499356,-0.0372439473867416,0.0302311256527901) * MODEL2_texOff(vec2(1,-1));
res += mat4(0.1417994350194931,-0.0802863761782646,-0.5168573856353760,0.4284590780735016,0.2155779749155045,-0.0099503044039011,-0.0197209436446428,0.2196248769760132,0.0689899325370789,-0.0927046313881874,-0.1548835486173630,-0.0140666514635086,-0.1252884566783905,-0.2691588997840881,-0.0234954245388508,-0.1579427868127823) * MODEL1_texOff(vec2(1,0));
res += mat4(0.1825157701969147,0.0053012222051620,-0.3848079144954681,-0.1351421177387238,-0.0667462944984436,0.2251955568790436,0.1309588551521301,0.0485090203583241,0.1391860246658325,-0.0363665521144867,0.2569894790649414,0.2250367850065231,-0.1150305792689323,0.1529891192913055,0.1978949159383774,-0.0210672318935394) * MODEL2_texOff(vec2(1,0));
res += mat4(-0.0405738279223442,0.0239226296544075,0.0391512773931026,0.0871666222810745,0.1990912258625031,-0.0352780781686306,0.0204429328441620,0.0904942452907562,0.0688170343637466,-0.0265345331281424,-0.0480051413178444,0.0829558447003365,0.0156589243561029,0.0186571720987558,0.0114998612552881,0.0201106462627649) * MODEL1_texOff(vec2(1,1));
res += mat4(-0.1565644443035126,0.0212041772902012,-0.1768136918544769,-0.0052985358051956,-0.0421085543930531,0.0878021419048309,-0.0640410259366035,0.0276268590241671,0.0049925222992897,-0.0405695699155331,0.0988777130842209,0.0222123023122549,-0.0737891271710396,0.1271380633115768,0.1009548828005791,-0.0753680989146233) * MODEL2_texOff(vec2(1,1));
res = max(res, vec4(0.0)) + vec4(0.0677467808127403,-0.0991765633225441,0.1610128134489059,0.4251394569873810) * min(res, vec4(0.0));
return res;
}

//!HOOK LUMA
//!WHEN OUTPUT.w LUMA.w / 1.400 > OUTPUT.h LUMA.h / 1.400 > *
//!DESC mapping 3_2
//!BIND MODEL1
//!BIND MODEL2
//!SAVE MODEL22
//!COMPONENTS 4
vec4 hook()
{
vec4 res = vec4(0.0048205368220806,-0.1795000731945038,-0.0179323069751263,0.0199524387717247);
res += mat4(0.0440433546900749,-0.1279579848051071,0.0419722497463226,0.0817098543047905,0.3515224754810333,-0.0728792622685432,-0.0171993933618069,-0.0224769916385412,-0.1753987669944763,0.0438246801495552,-0.0310349892824888,0.0346580892801285,-0.2351562231779099,0.0022199316881597,0.0287356711924076,-0.1538744419813156) * MODEL1_texOff(vec2(-1,-1));
res += mat4(0.0376326590776443,0.2461759448051453,-0.0384035371243954,-0.0279397685080767,-0.0796603262424469,0.1439856141805649,-0.0693442374467850,0.0055138263851404,-0.0811297148466110,0.2170518636703491,-0.0350220315158367,-0.0259025841951370,-0.3087936937808990,0.1363278627395630,-0.0682253465056419,-0.0468292497098446) * MODEL2_texOff(vec2(-1,-1));
res += mat4(-0.0840154513716698,0.0486004874110222,-0.0667984113097191,0.1238791719079018,0.2371638864278793,0.2013925611972809,0.0931697189807892,-0.0638891011476517,0.1638405174016953,-0.5617601275444031,0.1424000561237335,0.1759220361709595,0.1463782042264938,0.0669197291135788,-0.1313585788011551,-0.0943915098905563) * MODEL1_texOff(vec2(-1,0));
res += mat4(-0.2463753819465637,-0.1512033492326736,0.0855621546506882,-0.1604849994182587,-0.3201499283313751,0.0801995843648911,-0.1586008071899414,-0.0140904989093542,0.0372591279447079,-0.1825883239507675,0.0675139948725700,0.0441468209028244,-0.0981551781296730,0.2711803615093231,0.0314739793539047,-0.0164961088448763) * MODEL2_texOff(vec2(-1,0));
res += mat4(0.0326832458376884,-0.0348121374845505,-0.0233987458050251,0.0930863395333290,0.1945596039295197,-0.2057525813579559,0.1367574036121368,0.1574128121137619,0.1224625557661057,-0.0854283645749092,-0.0201053675264120,0.2189578264951706,-0.0199703797698021,0.0089134983718395,-0.0497622825205326,-0.0947072952985764) * MODEL1_texOff(vec2(-1,1));
res += mat4(0.0571607016026974,-0.0986107066273689,0.0278640110045671,0.0181969925761223,-0.2128674238920212,-0.0238840337842703,-0.0755717828869820,-0.0732725560665131,-0.0121840834617615,-0.0502185709774494,0.1917637735605240,-0.0039777755737305,-0.1289630085229874,0.0234512183815241,-0.0287113636732101,-0.0148991774767637) * MODEL2_texOff(vec2(-1,1));
res += mat4(-0.3795243799686432,-0.1615215688943863,0.0792334005236626,0.1033155694603920,0.1906682699918747,0.0760535374283791,0.0272325780242682,-0.0654636174440384,-0.3229669034481049,0.0546329319477081,-0.1719698756933212,-0.1177829653024673,-0.2673774063587189,0.0266172904521227,0.3695474863052368,0.0448714755475521) * MODEL1_texOff(vec2(0,-1));
res += mat4(-0.1436801403760910,0.2727621495723724,-0.3464110493659973,-0.0862034708261490,-0.4255303144454956,0.1799496710300446,-0.2725169062614441,0.1215806975960732,-0.7130583524703979,-0.2793678641319275,-0.2053820192813873,-0.6262661218643188,-0.1948573440313339,0.1101813092827797,-0.3737983703613281,-0.1553736329078674) * MODEL2_texOff(vec2(0,-1));
res += mat4(0.2334516495466232,-0.2838432788848877,-0.0929342880845070,-0.1053993180394173,0.3348192572593689,0.0043579512275755,0.1042128205299377,-0.6633562445640564,0.0154175311326981,-0.4725383222103119,0.2027494311332703,0.6442584395408630,-0.1722109913825989,-0.1391685456037521,-0.3488397002220154,-0.1250016689300537) * MODEL1_texOff(vec2(0,0));
res += mat4(0.0389903858304024,-0.6334384679794312,0.7028185129165649,0.1623120903968811,-0.3681160807609558,0.1117396727204323,-0.4478873312473297,0.2761826217174530,0.0882691293954849,-0.1627881526947021,-0.4073537588119507,0.6978411078453064,-0.1541459560394287,0.4672864377498627,0.0973866507411003,-0.5368687510490417) * MODEL2_texOff(vec2(0,0));
res += mat4(0.1388261020183563,0.0647558495402336,0.0555227696895599,-0.0559388026595116,0.1889975965023041,-0.1213065385818481,0.1035279482603073,-0.3172217607498169,0.1217528358101845,-0.2925685942173004,0.0440009720623493,0.4249491989612579,0.2665849626064301,0.2248986512422562,-0.1350891739130020,0.1183392480015755) * MODEL1_texOff(vec2(0,1));
res += mat4(0.0621412880718708,0.2698659896850586,0.0190494731068611,0.0634371116757393,-0.3037077486515045,-0.0195359401404858,-0.1585301160812378,0.1171419993042946,-0.1873641759157181,-0.0588720254600048,0.0922329053282738,0.2524787783622742,-0.1019331663846970,-0.0730158090591431,-0.0447025895118713,-0.1121891066431999) * MODEL2_texOff(vec2(0,1));
res += mat4(0.1890077441930771,-0.2698667347431183,-0.1170394867658615,0.2827297747135162,0.1900887042284012,-0.1001140996813774,0.0263557005673647,-0.0398199930787086,-0.0281802900135517,0.0147210368886590,-0.0548177324235439,0.0074887997470796,0.0623807497322559,0.0251081064343452,0.1320647597312927,0.3658876419067383) * MODEL1_texOff(vec2(1,-1));
res += mat4(-0.0331764668226242,0.0225758217275143,-0.0215843189507723,-0.1949141621589661,-0.2816795706748962,0.0601353198289871,-0.0478698834776878,0.0043550613336265,0.0636556670069695,-0.0687617585062981,0.0327985510230064,-0.0705159530043602,-0.1593182533979416,0.1796313375234604,-0.1894774436950684,-0.0203754957765341) * MODEL2_texOff(vec2(1,-1));
res += mat4(0.1301354318857193,-0.0199992712587118,-0.4767637848854065,-0.6098376512527466,0.1492560505867004,-0.0528312176465988,-0.1032629087567329,-0.1186438724398613,-0.0487112775444984,-0.0929673165082932,-0.1145102977752686,0.0337201096117496,-0.2913904786109924,0.1542141586542130,-0.1251416802406311,-0.0724218040704727) * MODEL1_texOff(vec2(1,0));
res += mat4(-0.0726189538836479,-0.0870543494820595,-0.0118402177467942,-0.2245028167963028,-0.1891385018825531,0.1227764040231705,-0.0073440531268716,0.0015926236519590,0.0357124544680119,-0.0375358127057552,0.1709225475788116,0.2375171929597855,-0.0330327823758125,0.0863114595413208,0.0187401846051216,-0.1978312581777573) * MODEL2_texOff(vec2(1,0));
res += mat4(0.1043423637747765,-0.0219311807304621,-0.0605644471943378,0.1470741927623749,0.1802275180816650,-0.1494189798831940,0.0104330284520984,0.0304580554366112,0.0249478593468666,0.0591421611607075,-0.0549270585179329,-0.0922787860035896,0.2438061982393265,0.2174259126186371,0.0119385737925768,0.2614025175571442) * MODEL1_texOff(vec2(1,1));
res += mat4(-0.0601802654564381,0.2395217120647430,-0.0268996488302946,-0.1687508523464203,-0.2564535140991211,0.1211859583854675,-0.1031659469008446,-0.2651764452457428,0.0669325962662697,-0.0254950635135174,0.1554662883281708,0.1479426920413971,-0.1545399576425552,-0.0346087217330933,-0.0124558964744210,0.0410138927400112) * MODEL2_texOff(vec2(1,1));
res = max(res, vec4(0.0)) + vec4(-0.2411560416221619,0.0019719158299267,0.5669082999229431,0.1066456511616707) * min(res, vec4(0.0));
return res;
}

//!HOOK LUMA
//!WHEN OUTPUT.w LUMA.w / 1.400 > OUTPUT.h LUMA.h / 1.400 > *
//!DESC mapping 4_1
//!BIND MODEL21
//!BIND MODEL22
//!SAVE MODEL1
//!COMPONENTS 4
vec4 hook()
{
vec4 res = vec4(-1.1223322153091431,-0.1300969123840332,-0.1735749989748001,-0.0059014894068241);
res += mat4(-0.1321687251329422,0.1654773354530334,0.0250697061419487,0.1377386450767517,0.0237646382302046,0.1052162572741508,0.0433724820613861,-0.0622335672378540,0.0291130039840937,-0.0206671673804522,0.0279007442295551,0.0413389392197132,0.0555913895368576,-0.1605294942855835,0.0570871457457542,-0.0687651857733727) * MODEL21_texOff(vec2(-1,-1));
res += mat4(-0.0230582952499390,-0.0716762989759445,-0.0583816245198250,0.0598187930881977,0.0962544232606888,0.0222218669950962,-0.0127720385789871,0.1925833374261856,0.1042642444372177,-0.1331252157688141,0.0180834792554379,-0.0043189385905862,-0.1932462453842163,0.0127341728657484,-0.0378397256135941,-0.1264692395925522) * MODEL22_texOff(vec2(-1,-1));
res += mat4(-0.1694011688232422,-0.0819950997829437,-0.1831051707267761,0.2191208600997925,0.0246198084205389,0.0523077808320522,-0.1167155057191849,-0.1752761304378510,-0.1204657107591629,0.0268852319568396,0.0812480524182320,-0.2927936315536499,0.0274873040616512,0.0938255041837692,0.0798309892416000,0.0395880825817585) * MODEL21_texOff(vec2(-1,0));
res += mat4(-0.0718519687652588,-0.1963379383087158,0.0252630636096001,0.1187259554862976,-0.2037867307662964,0.2431898713111877,-0.0817006602883339,-0.1797861158847809,0.3511901497840881,0.2918809652328491,0.0804106667637825,0.3409858345985413,0.0211742855608463,-0.1170731708407402,-0.1356433331966400,-0.0001700518478174) * MODEL22_texOff(vec2(-1,0));
res += mat4(-0.0481941662728786,0.0429164581000805,-0.0236250385642052,-0.1111190095543861,0.1219250857830048,0.1536271870136261,-0.1441382616758347,0.0768573135137558,-0.0215386021882296,-0.0271317549049854,0.0643325895071030,-0.0313950963318348,0.1304903924465179,0.0781354308128357,-0.0258511546999216,0.0626793503761292) * MODEL21_texOff(vec2(-1,1));
res += mat4(-0.2418899089097977,-0.1174703910946846,0.0661433860659599,-0.0821340233087540,-0.0931123346090317,-0.0103280534967780,-0.0124073857441545,0.0073440833948553,0.0491506867110729,0.1171863898634911,-0.0160050522536039,0.0479879379272461,-0.0988425016403198,0.1384110450744629,-0.0759150460362434,0.0519378334283829) * MODEL22_texOff(vec2(-1,1));
res += mat4(-0.3322927653789520,0.3267301619052887,-0.0723897740244865,-0.0170013550668955,0.1191038116812706,-0.0093286717310548,-0.0660024508833885,0.0023430162109435,-0.0130708636716008,-0.0715169757604599,0.0477340370416641,0.0085341744124889,0.1996432542800903,-0.1291262656450272,-0.0510511174798012,0.0576656050980091) * MODEL21_texOff(vec2(0,-1));
res += mat4(-0.0781256556510925,0.1341979056596756,-0.0118907373398542,0.0483426935970783,0.0497031956911087,-0.0190104208886623,0.0655944943428040,-0.0413698256015778,0.3117274343967438,-0.2625730931758881,-0.0652663335204124,0.1289061903953552,-0.2096291631460190,0.1733094155788422,-0.0518108233809471,-0.1896302998065948) * MODEL22_texOff(vec2(0,-1));
res += mat4(0.8568662405014038,-0.1506218612194061,0.0136133637279272,-0.0519915744662285,0.2399884760379791,0.1961485296487808,-0.1589895188808441,-0.3738012313842773,-0.0483807288110256,-0.0155771560966969,-0.6828323602676392,-0.3487066924571991,-0.4608090817928314,-0.1761253178119659,-0.3063473701477051,0.2326804995536804) * MODEL21_texOff(vec2(0,0));
res += mat4(0.0714937746524811,-0.4108047187328339,-0.0778465643525124,-0.1710817813873291,-1.0248270034790039,0.1575896292924881,0.1247909069061279,0.0681465640664101,-0.1314436197280884,0.6395733356475830,-0.3938426375389099,0.1411010622978210,0.4311462044715881,-0.3659362494945526,-0.2927338182926178,-0.3903573751449585) * MODEL22_texOff(vec2(0,0));
res += mat4(-0.3922973871231079,0.0436272174119949,0.0226996857672930,0.0638986602425575,-0.0649039447307587,-0.2194204777479172,0.0602009221911430,-0.1400203555822372,0.0286771692335606,0.0056362068280578,0.0480755493044853,-0.0837238654494286,0.4524033665657043,0.1307216584682465,-0.0376423895359039,-0.0636107847094536) * MODEL21_texOff(vec2(0,1));
res += mat4(-0.2758784592151642,0.1024172976613045,-0.1210475564002991,0.1647646874189377,-0.2696352303028107,0.1018787845969200,-0.0111663136631250,0.2139939963817596,0.6818492412567139,-0.1712480187416077,-0.1022011414170265,0.0496660433709621,0.0911368578672409,0.1573749035596848,-0.0210333466529846,0.1767027825117111) * MODEL22_texOff(vec2(0,1));
res += mat4(-0.0372905917465687,0.0962250977754593,0.0431804172694683,-0.0454753115773201,-0.1388821303844452,0.0567123740911484,0.0782769396901131,-0.1316072642803192,0.0781076923012733,0.0006314421189018,0.0196215994656086,-0.2006979137659073,-0.0247482378035784,-0.1331022530794144,0.0105821704491973,0.1067749485373497) * MODEL21_texOff(vec2(1,-1));
res += mat4(-0.1663244366645813,0.0311338864266872,0.0039028380997479,-0.0959737226366997,-0.0262776613235474,0.1670212447643280,-0.0397464819252491,-0.1129295378923416,0.1027470976114273,-0.0299594011157751,0.1015580669045448,0.1391748338937759,-0.0664461180567741,-0.0377870053052902,0.0149059994146228,0.0819880142807961) * MODEL22_texOff(vec2(1,-1));
res += mat4(-0.3854559361934662,-0.1241185143589973,0.0008104619919322,0.0591956302523613,-0.5311885476112366,-0.0218041706830263,0.0603203549981117,-0.2976039946079254,0.1135988086462021,0.1307832896709442,0.0079198591411114,-0.0927874669432640,0.0161498095840216,-0.0198248513042927,0.0782717168331146,0.0268507078289986) * MODEL21_texOff(vec2(1,0));
res += mat4(0.0098577970638871,-0.0481967851519585,0.0465151555836201,-0.0318006798624992,-0.0849945545196533,0.0654749050736427,-0.1034632623195648,0.0231137610971928,-0.3139742612838745,0.2256382852792740,0.2068212479352951,-0.0018194483127445,-0.1837555915117264,0.0163996908813715,0.1722530424594879,-0.0438531488180161) * MODEL22_texOff(vec2(1,0));
res += mat4(-0.0069717289879918,-0.0213026236742735,-0.0395569466054440,0.0211266931146383,0.2004721164703369,0.0642815306782722,-0.0338536314666271,0.0777448788285255,0.5415232777595520,-0.0606566481292248,-0.1103480681777000,-0.1154324263334274,0.1728280484676361,0.1621419191360474,0.0037559326738119,0.0380647182464600) * MODEL21_texOff(vec2(1,1));
res += mat4(-0.1419820487499237,-0.1205655634403229,0.1799280345439911,0.1317999809980392,-0.3869352936744690,-0.0099055673927069,0.0462592467665672,-0.0410735718905926,-0.0357987843453884,-0.0578178726136684,0.1623373180627823,0.1154545471072197,-0.1387149840593338,-0.0676240324974060,0.1149508059024811,0.1021640524268150) * MODEL22_texOff(vec2(1,1));
res = max(res, vec4(0.0)) + vec4(0.1370467990636826,0.0594728179275990,0.2767598628997803,0.0849914625287056) * min(res, vec4(0.0));
return res;
}

//!HOOK LUMA
//!WHEN OUTPUT.w LUMA.w / 1.400 > OUTPUT.h LUMA.h / 1.400 > *
//!DESC mapping 4_2
//!BIND MODEL21
//!BIND MODEL22
//!SAVE MODEL2
//!COMPONENTS 4
vec4 hook()
{
vec4 res = vec4(-0.1295791119337082,-0.0285373441874981,-0.0961498543620110,-0.0922101736068726);
res += mat4(-0.2214848101139069,-0.0835373178124428,0.0057110586203635,-0.0307750049978495,0.1593202054500580,-0.0581771917641163,-0.0748774260282516,0.1733186691999435,0.0073810778558254,0.0013497555628419,-0.0369827896356583,-0.0405463986098766,0.1255254745483398,0.0223778747022152,0.0442711226642132,0.3082242012023926) * MODEL21_texOff(vec2(-1,-1));
res += mat4(0.0100323520600796,-0.0762871950864792,-0.0115732597187161,-0.0130196791142225,-0.0239333510398865,0.1389649510383606,0.0147891212254763,-0.2622331976890564,-0.0696201175451279,0.1185355931520462,0.0612771399319172,0.0767284631729126,-0.0867045894265175,0.0285848136991262,0.0550135411322117,-0.1166378632187843) * MODEL22_texOff(vec2(-1,-1));
res += mat4(-0.4006431996822357,0.1401667296886444,0.0438147112727165,-0.0936184749007225,-0.1129250600934029,0.1348845362663269,-0.0184674859046936,-0.0696868151426315,0.1400286257266998,-0.0354565046727657,-0.1146878525614738,0.2500632405281067,0.3631064891815186,-0.1916419863700867,0.0280972197651863,0.4307261109352112) * MODEL21_texOff(vec2(-1,0));
res += mat4(0.0360922366380692,-0.0238435398787260,0.0042532384395599,0.0113178137689829,-0.1335088908672333,0.0628237798810005,-0.0164441373199224,-0.2189042270183563,-0.0311779715120792,-0.0363219380378723,-0.1512568593025208,-0.3813248872756958,-0.0510481148958206,0.0389202237129211,0.0070775677450001,-0.6611844301223755) * MODEL22_texOff(vec2(-1,0));
res += mat4(-0.1162878051400185,-0.1216348037123680,0.0161936059594154,-0.0006844129529782,-0.0567610375583172,-0.1462953090667725,0.0547641888260841,-0.2483083754777908,0.1470838785171509,0.0526544936001301,0.0482297539710999,-0.0203635711222887,0.1079781204462051,0.1864795535802841,0.0520201921463013,0.0983578264713287) * MODEL21_texOff(vec2(-1,1));
res += mat4(0.1255042254924774,-0.0567183047533035,-0.0269126277416945,0.1307726800441742,0.1447696834802628,0.1422730982303619,-0.0308272615075111,0.0555736571550369,0.0278983041644096,-0.0048553836531937,0.0380210243165493,-0.1771864295005798,-0.0257608685642481,-0.2219173461198807,0.0378777571022511,-0.2629722058773041) * MODEL22_texOff(vec2(-1,1));
res += mat4(-0.0733006745576859,0.0515957102179527,0.0878419131040573,0.1057671383023262,0.0188421700149775,0.1915579885244370,-0.0141475135460496,-0.1306412070989609,-0.1468941569328308,-0.0876115113496780,0.0029252318199724,0.0551306828856468,0.0233997590839863,0.0813571289181709,-0.0250071100890636,-0.0656933709979057) * MODEL21_texOff(vec2(0,-1));
res += mat4(-0.0190838500857353,-0.1565350592136383,-0.0248996615409851,-0.0932954624295235,-0.0063902214169502,0.3074197471141815,0.0394918546080589,0.0332004614174366,0.2513972222805023,0.3366246223449707,0.0178202241659164,0.2094055116176605,0.0403098389506340,-0.0185339115560055,-0.0341366492211819,-0.1377737671136856) * MODEL22_texOff(vec2(0,-1));
res += mat4(0.0617917999625206,0.3688199818134308,-0.1812348067760468,0.3681016862392426,0.3005764484405518,-0.3305342495441437,-0.1345352381467819,-0.3676211535930634,-0.3577553331851959,0.0531011484563351,0.3541664183139801,0.1053761169314384,-0.5838837623596191,-0.3853935003280640,-0.1089155152440071,-0.7553796768188477) * MODEL21_texOff(vec2(0,0));
res += mat4(-0.0274505019187927,0.0138868754729629,0.0776408463716507,-0.4139338135719299,-0.0540859289467335,0.4938514828681946,-0.7685245871543884,0.2005707621574402,0.3672254085540771,-0.2824304997920990,0.1094663366675377,0.3516559004783630,-0.1452037543058395,0.1337378174066544,-0.2581513524055481,-0.7890715599060059) * MODEL22_texOff(vec2(0,0));
res += mat4(-0.1368547677993774,-0.2643511891365051,-0.0105330795049667,0.0596823953092098,0.3133994936943054,0.1984339952468872,0.0872204229235649,0.0994741469621658,0.0424552001059055,-0.1792171299457550,-0.0253234785050154,-0.1104311197996140,0.0128646334633231,0.2841468453407288,0.0618450120091438,-0.0530412532389164) * MODEL21_texOff(vec2(0,1));
res += mat4(-0.1994978636503220,-0.2175619900226593,0.0183794926851988,-0.3280550241470337,-0.2743277549743652,-0.0983089134097099,0.1718643307685852,-0.1561194211244583,0.1703447252511978,0.1192463785409927,0.2023184448480606,0.0944035202264786,-0.1466210633516312,-0.2543482780456543,0.1479119807481766,-0.3754902184009552) * MODEL22_texOff(vec2(0,1));
res += mat4(0.1274862289428711,0.0973769575357437,-0.0168458092957735,0.0482429638504982,-0.0280397459864616,0.1538382172584534,-0.0103814182803035,0.3074973523616791,0.1715284138917923,0.0034593257587403,0.0318327769637108,0.1517166197299957,-0.1039709821343422,-0.0821215435862541,0.0181089546531439,-0.0938019305467606) * MODEL21_texOff(vec2(1,-1));
res += mat4(-0.1347499042749405,-0.0582989938557148,-0.0070858695544302,-0.0066868788562715,0.0057329414412379,0.0516511350870132,0.0474630147218704,0.0357965342700481,-0.1409885138273239,0.1113271117210388,0.0577467419207096,-0.1001879274845123,-0.0778419524431229,-0.0496151037514210,-0.0032471641898155,-0.0638169571757317) * MODEL22_texOff(vec2(1,-1));
res += mat4(0.1214311420917511,0.0079790754243731,0.0289393458515406,-0.1173540130257607,-0.3109619915485382,-0.1658592224121094,0.0539724603295326,0.1003677323460579,0.1072944104671478,-0.0905370637774467,-0.0816762223839760,0.2288358062505722,0.0356765054166317,-0.0351673625409603,0.0567866154015064,0.1104416847229004) * MODEL21_texOff(vec2(1,0));
res += mat4(-0.0611042194068432,0.0407148785889149,-0.0069380775094032,-0.1147068887948990,-0.0371562354266644,0.0960290506482124,-0.0370767526328564,-0.1814057826995850,-0.4559578895568848,-0.0944320857524872,0.0712573677301407,0.0822000801563263,0.0374678038060665,-0.0241361092776060,0.1370239257812500,0.3042095601558685) * MODEL22_texOff(vec2(1,0));
res += mat4(0.0386566817760468,-0.0880684852600098,0.0202178657054901,0.0195780564099550,-0.2655283212661743,0.1122663393616676,-0.0619509518146515,-0.2658832073211670,0.0629540830850601,-0.0366165935993195,-0.0351506136357784,0.1394809037446976,-0.0156049784272909,0.1131460964679718,-0.0017146010650322,0.0536732450127602) * MODEL21_texOff(vec2(1,1));
res += mat4(-0.0011252202093601,-0.2189980298280716,0.0952719599008560,0.2409899085760117,0.0239513311535120,-0.0431175976991653,0.0015445479657501,-0.0224881060421467,-0.0563675351440907,0.0209156014025211,-0.0250849686563015,0.1404715478420258,-0.0481568947434425,0.0651796683669090,-0.0228520594537258,0.1318911463022232) * MODEL22_texOff(vec2(1,1));
res = max(res, vec4(0.0)) + vec4(0.1676231473684311,0.0773649290204048,0.4401643872261047,-0.2241587787866592) * min(res, vec4(0.0));
return res;
}

//!HOOK LUMA
//!WHEN OUTPUT.w LUMA.w / 1.400 > OUTPUT.h LUMA.h / 1.400 > *
//!DESC sub-band residuals 1
//!BIND MODEL1
//!BIND MODEL2
//!BIND FEATURE1
//!SAVE RES1
//!COMPONENTS 4
vec4 hook()
{
vec4 res = vec4(0.0168903283774853,-0.0338472425937653,-0.0010350092779845,-0.1091031432151794);
res += mat4(-0.0640192031860352,-0.6263886690139771,0.2029227465391159,0.7723953723907471,-0.0148766003549099,0.1237521395087242,-0.1058849617838860,0.0701008513569832,0.1675537377595901,0.1618938148021698,0.0287367403507233,0.3157321810722351,0.1530603766441345,0.8061114549636841,-0.1315910071134567,-0.1340747475624084) * MODEL1_texOff(0);
res += mat4(0.4196842312812805,0.0237688291817904,0.0069430503062904,0.1371604651212692,0.1148009076714516,-0.0306940302252769,0.1921043843030930,-0.0715278461575508,-0.2411114573478699,0.0146580757573247,0.1177637726068497,0.1367328017950058,-0.1491587758064270,0.0483074076473713,-0.0001574619964231,-0.1109656020998955) * MODEL2_texOff(0);
res += FEATURE1_texOff(0);
res = max(res, vec4(0.0)) + vec4(1.0082098245620728,0.9557659029960632,0.6750057935714722,0.3329730033874512) * min(res, vec4(0.0));
return res;
}

//!HOOK LUMA
//!WHEN OUTPUT.w LUMA.w / 1.400 > OUTPUT.h LUMA.h / 1.400 > *
//!DESC sub-band residuals 2
//!BIND MODEL1
//!BIND MODEL2
//!BIND FEATURE2
//!SAVE RES2
//!COMPONENTS 4
vec4 hook()
{
vec4 res = vec4(0.0368579998612404,0.1092310473322868,0.0327099859714508,-0.0648257583379745);
res += mat4(0.3657743632793427,0.1711822152137756,0.1971789151430130,0.3562201261520386,0.0468969866633415,0.1527267694473267,0.0748409628868103,-0.2345201969146729,-0.4485194683074951,0.1606792509555817,0.0074925636872649,-0.1382177025079727,0.0132074486464262,0.2324362546205521,-0.3159873485565186,-0.6381764411926270) * MODEL1_texOff(0);
res += mat4(-0.2873469591140747,-0.0240771844983101,-0.0631125196814537,-0.0611509867012501,-0.0283021423965693,-0.0113594466820359,-0.0034217711072415,-0.0498166270554066,-0.0035268799401820,0.0374049060046673,0.1635005176067352,-0.0710083320736885,-0.1345601081848145,0.0833185091614723,0.0276701096445322,-0.0787946581840515) * MODEL2_texOff(0);
res += FEATURE2_texOff(0);
res = max(res, vec4(0.0)) + vec4(0.5268110036849976,0.9918534755706787,0.9894730448722839,1.0071165561676025) * min(res, vec4(0.0));
return res;
}

//!HOOK LUMA
//!WHEN OUTPUT.w LUMA.w / 1.400 > OUTPUT.h LUMA.h / 1.400 > *
//!DESC sub-pixel convolution 1
//!BIND RES1
//!BIND RES2
//!SAVE SUBCONV1
//!COMPONENTS 4
vec4 hook()
{
vec4 res = vec4(0.1667021512985229,0.1928853243589401,0.1932519674301147,0.2171689122915268);
res += mat4x4(0.0021255197934806,-0.0022453542333096,-0.0017081320984289,0.0038791587576270,0.0064287250861526,0.0018845384474844,0.0057496796362102,-0.0079703899100423,-0.0030460818670690,-0.0073513085953891,0.0200319811701775,-0.0040557435713708,0.0544825829565525,0.0012200772762299,-0.0525752268731594,-0.0012116219149902) * RES1_texOff(vec2(-1,-1));
res += mat4x4(0.0016482376959175,-0.0098993442952633,-0.0378623642027378,-0.0070172669366002,0.0008334667072631,-0.0036707648541778,-0.0074748825281858,0.0025209144223481,0.0154374809935689,-0.0176065955311060,0.0008984281448647,0.0060702306218445,0.0030876498203725,0.0007828990346752,-0.0034407475031912,-0.0082892579957843) * RES2_texOff(vec2(-1,-1));
res += mat4x4(-0.0173460673540831,-0.0062637841328979,0.0107025224715471,0.0025903715286404,0.0092814126983285,0.0237420275807381,0.0021521733142436,0.0222826786339283,0.0067419474944472,0.0378281958401203,-0.0225417669862509,-0.0269460994750261,-0.0803091004490852,-0.0238914471119642,0.0826075896620750,0.0011860016966239) * RES1_texOff(vec2(-1,0));
res += mat4x4(-0.0204877760261297,-0.0085859941318631,-0.0478873476386070,-0.0776541903614998,-0.0062741963192821,-0.0263756271451712,0.0077545889653265,-0.0160251148045063,0.0135225364938378,0.0089930510148406,0.0027184558566660,0.0151330158114433,-0.0056603592820466,0.0063916943036020,0.0021251479629427,0.0124501613900065) * RES2_texOff(vec2(-1,0));
res += mat4x4(0.0112155294045806,-0.0057651456445456,-0.0042799268849194,-0.0018745097331703,-0.0009660506621003,-0.0097284642979503,0.0023768942337483,-0.0036114323884249,0.0044032149016857,-0.0058387699536979,0.0038896622136235,-0.0064220945350826,0.0103215090930462,-0.0133844688534737,-0.0229282043874264,0.0138723272830248) * RES1_texOff(vec2(-1,1));
res += mat4x4(0.0172667894512415,-0.0039729676209390,-0.0071526058018208,-0.0088354023173451,-0.0006312471814454,0.0087826699018478,-0.0054536988027394,-0.0054351268336177,-0.0040666628628969,0.0197617914527655,-0.0002468550810590,-0.0053378995507956,-0.0016994322650135,-0.0060998313128948,-0.0008149813511409,-0.0005500107654370) * RES2_texOff(vec2(-1,1));
res += mat4x4(0.0048504560254514,-0.0197993125766516,0.0095921773463488,-0.0161129944026470,-0.0315351821482182,0.0179343018680811,-0.0103214168921113,0.0153978820890188,0.0422767065465450,-0.0737883523106575,-0.0005169613868929,-0.0538244098424911,-0.0269768610596657,0.0361906997859478,0.1326606273651123,0.0031528370454907) * RES1_texOff(vec2(0,-1));
res += mat4x4(-0.0728785842657089,0.0126341525465250,0.1470223069190979,-0.0369770750403404,0.0704551413655281,-0.0065731354989111,0.0548406131565571,-0.0099309831857681,0.0535684414207935,-0.0064084678888321,0.0920536294579506,-0.0385091230273247,-0.0305239669978619,-0.0004368690715637,-0.0053219762630761,0.0110884774476290) * RES2_texOff(vec2(0,-1));
res += mat4x4(0.1750736385583878,0.1000992730259895,0.1603700965642929,0.1057812720537186,0.1454619914293289,0.0789818316698074,0.3323420286178589,0.2786767184734344,-0.3397566974163055,0.2599293589591980,-0.1013103947043419,0.3238564431667328,-0.2015813738107681,-0.2626214921474457,-0.4747628569602966,-0.2353487014770508) * RES1_texOff(vec2(0,0));
res += mat4x4(-0.0543024614453316,-0.2132155895233154,0.2719599902629852,0.3741036951541901,0.4597503840923309,0.4643160402774811,0.1850380748510361,0.1988725960254669,0.1214949414134026,-0.0446044802665710,0.3317484259605408,0.1154458299279213,0.3375091850757599,0.3622419536113739,0.3624960482120514,0.3915151357650757) * RES2_texOff(vec2(0,0));
res += mat4x4(-0.0006488765939139,0.0105774477124214,0.0116543034091592,-0.0063532325439155,-0.0146354539319873,0.0118430573493242,-0.0230440199375153,0.0163588952273130,0.0568609498441219,-0.0144496094435453,0.0306706503033638,-0.0004694445815403,-0.0590353645384312,0.0358720645308495,0.0055836099199951,-0.0179306790232658) * RES1_texOff(vec2(0,1));
res += mat4x4(-0.0037431225646287,0.0041075544431806,-0.0040612164884806,-0.0015082089230418,-0.0101184407249093,0.0195750109851360,0.0186413656920195,0.0079341605305672,0.0123095028102398,-0.0321575365960598,0.0035177476238459,0.0705590993165970,0.0066253538243473,-0.0068469187244773,-0.0030311539303511,0.0014734900323674) * RES2_texOff(vec2(0,1));
res += mat4x4(0.0028718872927129,0.0037386009935290,-0.0043159937486053,-0.0081886351108551,0.0073055853135884,0.0023600840941072,0.0055439625866711,0.0080201756209135,-0.0036854485515505,-0.0041038454510272,0.0336064808070660,-0.0317694954574108,0.0177931860089302,-0.0026023995596915,-0.0742248669266701,0.0584004707634449) * RES1_texOff(vec2(1,-1));
res += mat4x4(0.0514381937682629,-0.0107089178636670,-0.0400978587567806,0.0096526853740215,-0.0070196269080043,-0.0092513309791684,-0.0143801299855113,0.0041622365824878,-0.0277711823582649,-0.0057290117256343,-0.0106890061870217,0.0046728113666177,0.0069265370257199,0.0073985471390188,-0.0077969226986170,0.0030262221116573) * RES2_texOff(vec2(1,-1));
res += mat4x4(-0.0059819654561579,0.0070180627517402,-0.0101155685260892,-0.0010624666465446,-0.0100914044305682,0.0029691762756556,0.0134564172476530,-0.0062906527891755,0.0127186281606555,-0.0202190056443214,-0.0905296131968498,0.0848268344998360,-0.0747644379734993,-0.0376718491315842,0.1112771183252335,-0.0749718770384789) * RES1_texOff(vec2(1,0));
res += mat4x4(0.0652361810207367,0.1213350743055344,-0.0006672526360489,-0.0768373236060143,-0.0158436633646488,-0.0112301604822278,0.0204355437308550,0.0062263943254948,-0.0352488532662392,-0.0230279117822647,0.0208500754088163,0.0512953251600266,0.0031603763345629,-0.0057522403076291,0.0027787110302597,-0.0027170295361429) * RES2_texOff(vec2(1,0));
res += mat4x4(0.0043540517799556,-0.0012611518613994,-0.0003640471841209,-0.0034160746727139,0.0033610416576266,0.0043355221860111,-0.0092692803591490,0.0076226890087128,-0.0005734734004363,0.0121160065755248,0.0261871870607138,0.0172298904508352,0.0013911566929892,-0.0162734929472208,-0.0070930933579803,0.0044093769975007) * RES1_texOff(vec2(1,1));
res += mat4x4(0.0083808246999979,0.0123445177450776,-0.0273024961352348,0.0092089660465717,-0.0023540987167507,-0.0056128245778382,-0.0041013262234628,0.0056618270464242,-0.0026948759332299,-0.0128246247768402,0.0231912024319172,-0.0194787438958883,-0.0036022579297423,0.0010117713827640,0.0033277808688581,-0.0128543302416801) * RES2_texOff(vec2(1,1));
return res;
}

//!HOOK LUMA
//!WHEN OUTPUT.w LUMA.w / 1.400 > OUTPUT.h LUMA.h / 1.400 > *
//!WIDTH LUMA.w 2 *
//!HEIGHT LUMA.h 2 *
//!DESC aggregation
//!BIND SUBCONV1
vec4 hook()
{
vec2 fcoord = fract(SUBCONV1_pos * SUBCONV1_size);
vec2 base = SUBCONV1_pos + (vec2(0.5) - fcoord) * SUBCONV1_pt;
ivec2 index = ivec2(fcoord * vec2(2));
vec4 res = SUBCONV1_tex(base);
return vec4(res[index.x * 2 + index.y], 0, 0, 1);
}
